package com.heima.gateway.Filter;

import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

//这是个全局
public class MyGlobalFliter implements GlobalFilter, Ordered {
    @Override


    //这个方法来自于实现GlobalFilter里面的方法
    //解释一下该方法的意思，前面（ServerWebExchange exchange）指的是接受请求以及响应，后面的就是链
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //对于来说，这里已经拦截完成，现在打印一下
        System.out.println("现在已经拦截到请求了");
        //但是在此同时也可以获取请求对象
        final var request = exchange.getRequest();
        //现在就是放行请求----也就是放行
        return chain.filter(exchange);
    }

    @Override

    //这个就是指的是有多个拦截器的话，我们要制定优先级
    //优先级，值越小，优先级越高---这个方法来自于实现Ordered
    public int getOrder() {
        return 0;
    }
}
